package com.yztctech.a25_01_startservice;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.util.Log;

/**
 * Created by bodhixu on 2016/9/24.
 * 自定义Service---->service没有视图 不需要xml文件,只需要实现逻辑就行了
 * Service默认时运行在它所在的宿主进程的主进程中
 */
public class MyService1 extends Service{

    //创建，startservice()时只会触发一次该方法
    @Override
    public void onCreate() {
        super.onCreate();
        Log.e("Tag", "----------> onCreate");
    }

    //启动，会被触发多次

    /**
     *
     * @param intent 启动的目的，可以携带数据
     * @param flags	 启动方式
     *                值0=手动启动，1和3-----.只能测试手动启动
     *
     * @param startId 第几次启动---------->从1开始
     * @return  1=START_STICKY，粘性-车祸后苏醒，但是失去记忆(表示当Service运行的进程被Android系统强制杀掉之后,该service还是运行状态,但是intent是null)
     *          2=START_NOT_STICKY，非粘性-车祸后死亡(表示当Service运行的进程被Android系统强制杀掉之后，不会重新创建该Service)
     *          3=START_REDELIVER_INTENT，还原-车祸后苏醒并恢复记忆表示当Service运行的进程被Android系统强制杀掉之后,该service还是运行状态,但是intent还存在哦)
     */
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e("Tag", "----------> onStartCommand");
        String data = intent.getStringExtra("key_data");
        Log.e("Tag", "data = " + data);

        Log.e("Tag", "flags = " + flags);
        Log.e("Tag", "startId = " + startId);
        return super.onStartCommand(intent, flags, startId);
    }

    //销毁，只会被触发一次
    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.e("Tag", "----------> onDestroy");
    }

    //必须要实现，但是在startService启动方式下，不会被触发;在BindService启动方式下触发
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }


}
